Генетические алгоритмы (ГА) — это стохастические глобальные эвристики поиска, вдохновленные принципами естественного отбора, в частности «выживанием сильнейшего» Дарвина и генетической рекомбинацией.
1. Структуры представления
- Канонические ГА: Используют двоичные или коды Грея для кодирования переменных решений.
- Реальные кодированные ГА (RCGA): Непосредственно манипулируют векторами с плавающей точкой, что часто делает их более эффективными для непрерывной оптимизации.
2. Эволюционный цикл
Итеративный процесс оценки, отбора и воспроизводства. Критически важным понятием является различие между генотипом (закодированная битовая строка/хромосома) и фенотипом (значением декодированной переменной решения в реальном пространстве задачи).
Преобразование из двоичной строки в вещественное значение $x \in [a, b]$ задается формулой:
$$x = a + \frac{десятичное\_значение \times (b - a)}{2^L - 1}$$
Где $L$ — длина битов хромосомы.
Плато Хэмминга
Обратите внимание на плато Хэмминга при стандартном двоичном кодировании — ситуации, когда соседние десятичные числа (например, 7 и 8) имеют кардинально разные двоичные паттерны (
0111 против 1000), что затрудняет локальный поиск для ГА.
Python Implementation: Binary-to-Real Decoding
Вопрос 1
Почему код Грея чаще предпочитается стандартному двоичному кодированию в ГА?
Вопрос 2
Если вероятность мутации (p) установлена слишком высокой (например, p = 0.5), какой, скорее всего, будет результат?
Кейс-стади: оптимизация компонента моста
Прочитайте сценарий ниже и ответьте на вопросы.
Вы оптимизируете конструкцию компонента моста, где переменной решения является «Толщина материала».
- Толщина должна быть между 0,0 мм и 10,23 мм.
- Вы используете канонический ГА с 10-битнойрепрезентацией двоичной строки.
Вопрос
1. Если у особи хромосома
0000000000, какова расшифрованная толщина?Ответ: 0,0 мм
Двоичная строка
Двоичная строка
0000000000 равна 0 в десятичной системе. Используя формулу $x = a + \frac{десятичное \times (b-a)}{2^L - 1}$, получаем $0,0 + \frac{0 \times (10,23 - 0,0)}{1023} = 0,0$.
Вопрос
2. Рассчитайте точность поиска (наименьшее возможное изменение толщины) для этой 10-битной конфигурации.
Ответ: 0,01 мм
Точность определяется как диапазон, разделённый на максимальное возможное десятичное значение. $\frac{10,23 - 0}{2^{10} - 1} = \frac{10,23}{1023} = 0,01$ мм.
Точность определяется как диапазон, разделённый на максимальное возможное десятичное значение. $\frac{10,23 - 0}{2^{10} - 1} = \frac{10,23}{1023} = 0,01$ мм.
Вопрос
3. Во время отбора у индивида A приспособленность 10, у индивида B — 30. При использовании выбора по колесу рулетки какова вероятность выбрать B вместо A?
Ответ: 75%
Общая приспособленность = $10 + 30 = 40$. Вероятность выбора B = $\frac{30}{40} = 0,75$ или 75%. (соотношение 3:1).
Общая приспособленность = $10 + 30 = 40$. Вероятность выбора B = $\frac{30}{40} = 0,75$ или 75%. (соотношение 3:1).